Continuous scrolling list with acceleration

ABSTRACT

Movement of a point of contact by a user of a touch-sensitive display is determined. In response to the movement, a list of items on the touch-sensitive display is scrolled through. The scroll through is accelerated in response to an accelerated movement of the point of contact. The scroll through and acceleration of the scroll through may be in accordance with a simulation of a physical device having friction.

RELATED APPLICATIONS

This application is related to U.S. Patent Application No. to beassigned, filed December xxx, 2005, entitled “List Scrolling in Responseto Moving Contact Over List of Index Symbols,” Attorney Docket063266-4004-US, which application is incorporated by reference herein inits entirety.

This application is related to U.S. Patent Application No. to beassigned, filed December xxx, 2005, entitled “Scrolling List WithFloating Adjacent Index Symbols,” Attorney Docket 063266-50011-US, whichapplication is incorporated by reference herein in its entirety.

FIELD OF THE INVENTION

The present invention relates generally to user interfaces that includeemploy touch-sensitive displays, and more specifically to userinterfaces having lists that may be scrolled through.

BACKGROUND

The utility, ease of use, and ultimately, popularity of many electronicdevices, including portable devices such as cellular telephones, isoften gated by industrial design, including the user interface. The userinterface is the gateway through which users receive not only contentbut also responses to user actions or behaviors, including user attemptsto access a device's features or tools. As such, the user interface isintegral to an overall user experience.

Unfortunately, there are limitations associated with existing userinterfaces, especially the user interfaces for small, handheld devices.Existing user interfaces are often complicated. For example, the userinterfaces of many mobile phones require a user to traverse a complextree structure of menus to access device features and content. Inaddition, existing user interfaces are often counterintuitive, requiringa user to either read instructions in a manual or to engage infrustrating trial and error attempts to locate device features orcontent. As a consequence, attempts to add additional functionality tosuch devices are often hampered by the complexity of the user interface.

There is a need therefore, for improved user interfaces for devices, andparticularly for small, handheld devices.

SUMMARY

Movement of a point of contact by a user of a touch-sensitive display isdetermined. In response to the movement, a list of items on thetouch-sensitive display is scrolled. Scrolling of the list isaccelerated in response to an accelerated movement of the point ofcontact.

The accelerated movement of the point of contact may include anaccelerated movement of the point of contact followed by a breaking ofthe point of contact. In some embodiments, the scrolling may be stoppedwhen the user breaks the point of contact and then establishes asubstantially stationary point of contact with the touch-sensitivedisplay.

The accelerated movement of the point of contact may include a firstsweeping motion of the point of contact along a predefined axis of thetouch-sensitive display. In some embodiments, the scrolling isaccelerated in response to a second sweeping motion of the point ofcontact along the predefined axis of the touch-sensitive display.

The accelerated movement of the point of contact may include a firstuser gesture oriented along a predefined axis of the touch-sensitivedisplay. In some embodiments, the scroll through is further acceleratedin response to a second user gesture oriented along the predefined axisof the touch-sensitive display.

In some embodiments, a direction of the scroll through is reversed inresponse to the scrolling list intersecting a virtual boundarycorresponding to a terminus of the list. The display of the scrollinglist reversal may correspond to a damped motion.

In some embodiments, a determination is made if the movement of thepoint of contact corresponds to a displacement greater than apre-determined magnitude. When the movement corresponds to thedisplacement greater than the pre-determined magnitude, scrollingthrough the list occurs. An offset in the point of contact may beincluded when scrolling through the list of items. The offsetcorresponds to the pre-determined magnitude of the displacement andallows the scrolling to commence smoothly, i.e., without an abrupt jumpor discontinuity on a displayed image corresponding to the list.

The aforementioned methods may be performed by a portable electronicdevice having a touch-sensitive display, a processor, memory and one ormore programs or sets of instructions stored in the memory forperforming these methods. In some embodiments, the portable electronicdevice provides a plurality of functions, including wirelesscommunication.

Instructions for performing the aforementioned methods may be includedin a computer program product configured for execution by one or moreprocessors.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the invention, reference should be made tothe following Description of Embodiments taken in conjunction with theaccompanying drawings, in which:

FIG. 1 is a flow diagram illustrating an embodiment of a method ofscrolling through a list.

FIG. 2 is a flow diagram illustrating an embodiment of a method ofscrolling through a list.

FIG. 3 is a flow diagram illustrating an embodiment of a method ofscrolling through a list.

FIG. 4 is a flow diagram illustrating an embodiment of a method ofscrolling through a list.

FIG. 5 is a flow diagram illustrating an embodiment of a method ofscrolling through a list.

FIG. 6 is a schematic diagram of an embodiment of a user interface of aportable electronic device having a touch-sensitive display.

FIG. 7A is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device having a touch-sensitivedisplay.

FIG. 7B is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device having a touch-sensitivedisplay.

FIG. 7C is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device having a touch-sensitivedisplay.

FIG. 8 is a flow diagram illustrating an embodiment of a method ofscrolling through a list.

FIG. 9 is a flow diagram illustrating an embodiment of a method ofscrolling through a list.

FIG. 10 is a flow diagram illustrating an embodiment of a method ofscrolling through a list.

FIG. 11A is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device having a touch-sensitivedisplay.

FIG. 11B is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device having a touch-sensitivedisplay.

FIG. 11C is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device having a touch-sensitivedisplay.

FIG. 11D is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device having a touch-sensitivedisplay.

FIG. 11E is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device having a touch-sensitivedisplay.

FIG. 12 is a block diagram illustrating an embodiment of a portableelectronic device having a touch-sensitive display.

FIG. 13 is a block diagram of an embodiment of a data structure for alist of items.

Like reference numerals refer to corresponding parts throughout thedrawings.

DESCRIPTION OF EMBODIMENTS

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the present invention. However, it will beapparent to one of ordinary skill in the art that the present inventionmay be practiced without these specific details. In other instances,well-known methods, procedures, components, and circuits have not beendescribed in detail so as not to unnecessarily obscure aspects of theembodiments.

Embodiments of a portable device having a user interface are described.The portable device may be a handheld computer, a tablet computer, apersonal digital assistant, a cellular telephone and/or a combination oftwo or more of these items. The portable device includes atouch-sensitive display. The display may be sensitive to haptic and/ortactile contact with a user. In an exemplary embodiment, a point ofcontact between the touch-sensitive display and the user corresponds toone or more digits of the user. In other embodiments, the point ofcontact may correspond to a stylus. The touch-sensitive display may useLCD (liquid crystal display) technology, or LPD (light emitting polymerdisplay) technology, although other display technologies may be used inother embodiments. The touch-sensitive display may furthermore includeproximity sensor arrays or other elements for determining one or morepoints of contact with the touch-sensitive display. The touch-sensitivedisplay is analogous to the multi-touch sensitive tablets described inthe following U.S. Pat. No. 6,323,846 (Westerman et al.), U.S. Pat. No.6,570,557 (Westerman et al.), and/or U.S. Pat. No. 6,677,932(Westerman), and/or U.S. Patent Publication 2002/0015024A1, each ofwhich is hereby incorporated by reference. However, the touch-sensitivedisplay displays visual output from the portable device, whereas thetouch sensitive tablets do not provide visual output.

The touch-sensitive display may include a GUI with one or more windows.The one or more windows may be used to display a list of items orinformation items. In an exemplary embodiment, the list of items mayinclude contact information, such as names, addresses, photographs,and/or telephone numbers, for a plurality of individuals (sometimesreferred to as a user's contact list or address book). In response to adetermined movement of the point of contact, the list may be scrolled.Determining movement of the point of contact may include determiningspeed (magnitude), velocity (magnitude and direction), and/or anacceleration (including magnitude and/or direction) of the point ofcontact. Scrolling through the list may be accelerated in response to anaccelerated movement of the point of contact. In some embodiments, thescrolling and acceleration of the scrolling may be in accordance with asimulation of a physical device having friction, i.e., damped motion.For example, the scrolling may correspond to a simulation of a force lawor equation of motion having a mass or inertial term, as well as adissipative term. In some embodiments, the simulation may correspond toa cylinder rotating about its axis.

In some embodiments, accelerated movement of the point of contact mayinclude an accelerated movement of the point of contact followed by abreaking of the point of contact. For example, the user may make contactwith the touch-sensitive display, swipe or sweep one or more of his orher fingers along the display (i.e., move and/or accelerate the point ofcontact), and optionally, break the point of contact with the display,i.e., move the one or more fingers away from the display. The swipe orsweep may be along a predefined axis of the touch-sensitive display. Inother embodiments, the accelerated movement of the point of contact mayinclude a first user gesture oriented along a predefined axis of thetouch-sensitive display.

Scrolling through the list of items may be further accelerated inresponse to a second sweeping motion of the point of contact along thepredefined axis of the touch-sensitive display and/or a second usergesture oriented along the predefined axis of the touch-sensitivedisplay. For example, the user may swipe one or more of his or herfingers along the touch-sensitive display two or more times.

The scrolling through the list of items may be stopped in accordancewith the user breaking the point of contact and then establishing asubstantially stationary point of contact with the touch-sensitivedisplay for at least a pre-determined period of time. For example, afterswiping one or more of his or her fingers along the touch-sensitivedisplay and breaking the point of contact, the user may touch thedisplay and hold the one or more fingers that are touching the displaystationary (or approximately stationary) for one or more seconds, orfractions of a second.

The direction of scrolling through the list of items may be reversed inresponse to the scrolling intersecting a virtual boundary correspondingto a terminus of the list. The scrolling reversal may correspond to adamped motion. For example, during scrolling, a displayed portion of thelist of items may appear to bounce off of a boundary of the window inthe touch-sensitive display when a beginning or an end of the list ofitems is reached. The apparent bounce may correspond to a simulation ofa viscous or elastic ball having momentum in a first direction strikingan immovable and/or inelastic object, such as a wall. The subsequentmotion of the ball may be damped, for example, by including a frictionor dissipative term in the simulation. A parameter corresponding to thefriction term in the simulation may be adjustable, allowing the ball toreach equilibrium in contact with the wall, i.e., the virtual boundary,or displaced from the wall.

As described below with reference to FIGS. 8-11, in some embodimentsmovement of the point of contact by the user over an index on thetouch-sensitive display may be determined. In some embodiments, theindex may be displayed in a first region or a first window of thetouch-sensitive display while the list of items or information itemsduring the scrolling may be displayed in a second region or a secondwindow of the touch-sensitive display. The displayed index may have asequence of index items. In an exemplary embodiment, the sequence ofindex items may include letters in the alphabet, i.e., the index mayinclude an alphabetical index. The list of information items may includean alphabetically ordered list of information items. The alphabeticallyordered list of information items may include contact information, forexample, in a user's contact list or address book.

In response to movement of the user's point of contact over a displayedindex, the list of information items on the touch-sensitive display maybe scrolled. The list of information items may include a sequence ofinformation item subsets corresponding to the sequence of index items.The subsets may include one or more categories. For example, arespective category may include contact information for one or moreindividuals whose first and/or last names begin with one or morerespective letters, such as the letter ‘s’. In an exemplary embodiment,there is a subset corresponding to each letter in the alphabet that hasone or more entries. In some embodiments, the scrolling may be inaccordance with a simulation of an equation of motion having friction.

The scrolling may include scrolling through a respective informationitem subset if the point of contact moves over a correspondingrespective index item in the index items. The scrolling may have anassociated scroll speed based on a speed of movement of the point ofcontact over the respective index item and the number of items in theinformation item subset corresponding to the respective index item. Forexample, the scroll speed may be faster for subsets that have moreentries than subsets with fewer entries. The scrolling may includescrolling through all items in a plurality of the information itemsubsets in response to the point of contact moving over thecorresponding index items in the displayed index.

If it is determined that the point of contact with the index correspondsto a respective index item in the index, the list of information itemsmay be scrolled to a corresponding subset of the list of informationitems. For example, if the user selects an index item, such as theletter ‘R’, in the set of index symbols, the list of items may besmoothly scrolled to the corresponding subset for the letter ‘R’ in thelist of items. Alternatively, the displayed list of information itemsjump directly from a current scroll position to a scroll position inwhich information items corresponding to the index item ‘R’ aredisplayed.

If the point of contact with the touch-sensitive display corresponds toa user selection of a respective information item in the list ofinformation items, information corresponding to the respectiveinformation item may be displayed on the touch-sensitive display. Forexample, if the user selects a respective name, the correspondingcontact information may be displayed.

While scrolling through respective information subsets, an index symbolmay displayed in conjunction with each respective information itemsubset. In some embodiments, respective index symbols may be displayedadjacent to corresponding subsets (such as displayed text) of the listof information items. In some embodiments, a respective index symbol maybe displayed at an upper edge of a window containing the displayed textof the respective information item subset.

The index symbol corresponding to a respective information subset may betranslucently displayed over the respective information item subset. Thetranslucently displayed index symbol may have a different font colorthan that used to display text in the information item subset, and/or itmay be displayed using a larger font than the font used to display textin the information item subset.

If the list of information items contains no items for a particularindex symbol, i.e., no entries for a particular subset, a first indexsymbol preceding a particular index symbol and a second index symbolfollowing the index symbol may be displayed in conjunction withscrolling through the list of information items from the informationsubset corresponding to the first index symbol to the information subsetcorresponding to the second index symbol. The particular index symbolmay not be displayed in conjunction with the displayed text of the listof information items during the scroll through. For example, display ofa respective index symbol may be skipped when the list of informationitems contains no items for the particular index symbol.

Attention is now given to embodiments of a method of continuouslyscrolling a list with acceleration. FIG. 1 is a flow diagramillustrating an embodiment of a method 100 of scrolling through a list.Movement of a point of contact corresponding to a sweeping motion orgesture by a user of a touch-sensitive display is determined (110). Forinstance, the movement of the point of contact may be in the samedirection that the list is to be scrolled. Thus, if the user wants thelist to scroll upwards, the user sweeps a finger (or stylus or the like)in contact with and in an upward direction on the touch-sensitivedisplay. Scrolling the list upward will typically scroll the list tolater entries in the list, for instance scrolling from items in category“A” to items in category “B”. To scroll the list downward, the usersweeps a finger in a downward direction on the touch-sensitive display.In some embodiments, such as a user interface that simulates a rolodexor a list in inverse alphabetical order, an upward movement of a pointof contact causes earlier entries in the list to be displayed, whereas adownward movement of the point of contact causes later entries in thelist to be displayed. In this description, the terms “upward” and“downward” are directions relative to the top and bottom of a GUI on thetouch-sensitive display.

In some embodiments, the list scrolling method described here operateswithout displaying a scroll bar. The user's sweeping motion on thetouch-sensitive display operation may be performed directly on top ofthe displayed list, and may include a sweeping or gliding motion, incontact with the display's surface, along a path anywhere within adisplay window in which the list is displayed. While a scroll bar couldpotentially be displayed in conjunction with the displayed list, thescrolling method described here can be independent of any such scrollbar. If a scroll bar is used, then an upward movement of a point ofcontact on the scroll bar may cause earlier entries in the list to bedisplayed, whereas a downward movement of the point of contact on thescroll bar may cause later entries in the list to be displayed.

A list of items on the touch-sensitive display is scrolled in responseto the movement (112). One or more of the following operations mayoccur. In response to a first accelerated movement of the point ofcontact and optional breaking of the point of contact, the scrolling mayaccelerate (114). In response to a second accelerated movement of thepoint of contact and optional breaking of the point of contact, thescrolling may further accelerate (116). A direction of the scrolling mayreverse when the scrolling list intersects a virtual boundarycorresponding to a terminus of the list (118). For example, when thelist is scrolled to its beginning or end, the scrolling list may appearto bounce again at a boundary and reverse direction. After the bounce orscrolling direction reversal, the scrolling may automatically stop so asto leave the first or last item of the list in view on thetouch-sensitive display. The scrolling may stop when the user breaks thepoint of contact (e.g., by lifting his/her finger off the display) andthen establishing a substantially stationary point of contact for atleast a pre-determined period of time (120). In other embodiments, themethod 100 may include fewer operations or additional operations. Inaddition, two or more operations may be combined and/or an order of theoperations may be changed.

In some embodiments, scrolling may be in accordance with a speed ofmovement of the point of contact. The speed may be a time average ofvalues determined during several time intervals. In an exemplaryembodiment, the speed, velocity and/or acceleration may be determinedover five time intervals, where a respective time interval correspondsto an inverse of a frame rate, such as 0.0167 s, of a display. In someembodiments, the speed velocity and/or acceleration may be determinedeven when a variable frame rate is used, such as when one or more framesare skipped or not displayed. In these embodiments, the speed, velocityand/or acceleration may be determined two or more times for therespective time interval and/or may be projected based on valuesdetermined in a preceding and/or a subsequent time interval.

In some embodiments, the scrolling after a user optionally breaks thecontact may be in accordance with the change in the acceleration and thespeed or the velocity in one or more time intervals prior to thebreaking of the contact. For example, the velocity v_(f) of scrollingone or more time intervals after breaking contact may be determinedusingν_(f)=ν_(o) +aΔt,where v_(o) is a current value of the velocity when the contact isbroken, a is a current value of the acceleration when the contact isbroken and Δt is an elapsed time, such as one time interval. Thevelocities and/or acceleration in such a calculation may be projectedalong an axis or direction of the scrolling. In some embodiments, insubsequent time intervals following the determination of the velocitybased on the acceleration and/or the velocity in one or more timeintervals prior to the breaking of the contact, the velocity of thescrolling may be tapered. For example, in each successive time intervalthe velocity may be decreased by 5%. When the velocity crosses a lowerthreshold, it may be set to zero.

FIG. 2 is a flow diagram illustrating an embodiment of a method 200 ofscrolling through a list. Movement of a point of contact correspondingto a sweeping motion or gesture by a user of a touch-sensitive displayis determined (208). A determination is made if the movement of thepoint of contact corresponds to a displacement greater than apre-determined magnitude (210). A list of items on the touch-sensitivedisplay is scrolled in response to the movement (212). A direction ofthe scrolling may reverse when the scrolled list intersects a virtualboundary corresponding to a terminus of the list (214). In otherembodiments, the method 200 may include fewer operations or additionaloperations. In addition, two or more operations may be combined and/oran order of the operations may be changed.

Determining if the point of contact corresponds to a displacementgreater than the pre-determined value (210) allows small variations,such as less than 0.5, 1 or 2 mm, in the point of contact to occurwithout scrolling the list of items (212). For example, when the usertaps on the touch sensitive screen there may be small, unintentionalchanges in the point of contact. When the movement corresponds to adisplacement greater than the pre-determined magnitude, the scrolling(212) commences smoothly. For example, an offset in the point of contactmay be included when scrolling through the list of items. The offsetcorresponds to the pre-determined magnitude of the displacement. Theoffset may prevent or reduce an abrupt jump or discontinuity in adisplayed image corresponding to the list.

FIG. 3 is a flow diagram illustrating an embodiment of a method 300 ofscrolling through a list. A user 310 moves a point of contact using asweep motion or gesture (314) on the touch-sensitive display of adevice. The device 312 determines movement and/or acceleration of thepoint of contact (316), and scrolls a list of items on its display inresponse to the movement (318). The device accelerates the scrolling inresponse to accelerated movement of the point of contact and optionalbreaking of the point of contact (320). The user 310 may move the pointof contact again using the sweep motion/gesture (322). The device 312again determines movement and/or acceleration of the point of contact(324), and further accelerates the scrolling in response to theaccelerated movement of the point of contact and optional breaking ofthe point of contact (326). In other embodiments, the method 300 mayinclude fewer operations or additional operations. In addition, two ormore operations may be combined and/or an order of the operations may bechanged.

FIG. 4 is a flow diagram illustrating an embodiment of a method 400 ofscrolling through a list. A user 310 moves a point of contact using asweep motion or gesture (314) on the touch-sensitive display of adevice. The device 312 determines movement and/or acceleration of thepoint of contact (316), and scrolls a list of items on its display inresponse to the movement (318). The device accelerates the scrolling inresponse to accelerated movement of the point of contact and optionalbreaking of the point of contact (320). The user 310 may break the pointof contact and establish a substantially stationary point of contact forat least a pre-determined period of time (410). The device 312determines the breaking of the point of contact and the establishment ofa substantially stationary point of contact (412), and responds bystopping the scrolling (414). In other embodiments, the method 400 mayinclude fewer operations or additional operations. In addition, two ormore operations may be combined and/or an order of the operations may bechanged.

FIG. 5 is a flow diagram illustrating an embodiment of a method 500 ofscrolling through a list. Operations 314 through 320 are as describedabove, and furthermore the accelerated scrolling operation 320 may beskipped when the user does not move a point of contact in an acceleratedmanner. When the scrolling list intersects a virtual boundarycorresponding to a terminus of the list, the direction of scrolling isreversed (510), at least momentarily. In some embodiments, the scrollingreverses and then comes to a stop in a damped fashion when the terminusof the list is reached. In other embodiments, the method 500 may includefewer operations or additional operations. In addition, two or moreoperations may be combined and/or an order of the operations may bechanged.

FIG. 6 is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device 600 having a touch-sensitivedisplay 608. The display 608 may include a window 610. The window 610may include one or more displayed objects, such as information objects612-1 to 612-4. In an exemplary embodiment, the information objects 612may correspond to contact information for one or more individuals in alist of items. The displayed objects may be moved in response todetecting or determining movement 614 of a point of contact with thedisplay, such as that associated with one or more digits 616 of a user(which are not drawn to scale in FIG. 6). In some embodiments, movementof the displayed objects may be accelerated in response to detecting ordetermining accelerated movement of the point of contact. Whileembodiment 600 includes one window 610, in other embodiments there maybe two or more display windows. In addition, while embodiment 600illustrates movement 614 in a particular direction, in other embodimentsmovement of the displayed objects may be in response to movement 614 inone or more other directions, or in response to a scalar (i.e., adetermined or detected movement independent of the direction).

FIGS. 7A-7B illustrate the scrolling of a list of items to a terminus ofthe list, at which point one or more displayed items at the end of thelist smoothly bounce off the end of the display, reverse direction, andthen optionally come to a stop. FIG. 7A is a schematic diagramillustrating an embodiment of a user interface of a portable electronicdevice 600 having a touch-sensitive display. One or more displayedobjects, such as information object 612-1 may be a distance 712-1 from aterminus 714 of the list of items and may be moving with a velocity710-1 while the list is being scrolled. Note that the terminus 714 is avirtual boundary associated with the displayed objects, as opposed to aphysical boundary associated with the window 610 and/or the display 608.As illustrated in FIG. 7B, when the one or more displayed objects, suchas the information object 612-1, reach or intersect with the terminus714, the movement corresponding to the scrolling may stop, i.e., thescrolling velocity may be zero at an instant in time. As illustrated inFIG. 7C, the one or more displayed objects, such as the information612-1, may subsequently reverse direction. At a time after theintersection with the terminus 714, the information object 612-1 mayhave velocity 710-2 and may be a distance 712-2 from the terminus 714.In some embodiments, the magnitude of velocity 710-2 may be less thanthe magnitude of velocity 710-1 when the distance 712-2 equals thedistance 712-1, i.e., the motion of the one or more displayed objects isdamped after the scrolling list reaches and “bounces” at its terminus.

Attention is now given to embodiments of an index for the list of itemsor information items. FIG. 8 is a flow diagram illustrating anembodiment of a method 800 of scrolling through a list. Movement of apoint of contact over an index displayed on a touch-sensitive display isdetermined (810). The displayed index may have a sequence of indexitems. A list of items on the touch-sensitive display is scrolled inresponse to the user's movement of the point of contact over the index(812). The list of information items may include a sequence ofinformation item subsets corresponding to the sequence of index items.For instance, if the index includes index items A, B, C and D, thesequence of information items may include a subset of itemscorresponding to index item A, another subset of items corresponding toindex item B, another subset of items corresponding to index item C, andyet another subset of items corresponding to index item D. To be evenmore specific, in one example, each subset of index items contain thesame first letter or symbol.

A scroll speed based on the speed of movement of the point of contactover a respective index item and the number of items in the informationitem subset corresponding to a respective index item may be determined(814). One or more of the following operations may occur. Items in aplurality of the information item subsets may be scrolled through thedisplay, at the determined scroll speed, in response to the point ofcontact moving over the corresponding index items in the displayed index(816). When the point of contact corresponds to a respective index itemin the displayed index, that positioning of the point of contact isdetected, and the list of information items is smoothly scrolled to acorresponding subset of the list of information items (818).

In some embodiments, respective index symbols may be displayed adjacentto corresponding subsets of the list of information items whilescrolling through the list of information items (820). When the point ofcontact with the touch-sensitive display corresponds to a selection of arespective information item in the list of information items, thatpositioning of the point of contact is detected, and informationcorresponding to the respective information item is displayed inresponse (822). In other embodiments, the method 800 may include feweroperations or additional operations. In addition, two or more operationsmay be combined and/or an order of the operations may be changed.

FIG. 9 is a flow diagram illustrating an embodiment of a method 900 ofscrolling through a list. Movement of a point of contact by a user of atouch-sensitive display is determined (910). A list of information itemson the touch-sensitive display is scrolled in response to the movement(912). The list of information items may include a sequence ofinformation item subsets corresponding to a sequence of index symbols.In some embodiments, the index symbol corresponding to a respectiveinformation item subset is displayed translucently over the respectiveinformation item subset (914). The index symbol corresponding to arespective information item subset may be optionally displayed using adifferent font color than used to display text in the information itemsubset (916). The index symbol corresponding to a respective informationitem subset may be optionally displayed using a larger font than used todisplay text in the information item subset (918). The index symbolcorresponding to a respective information item subset may be optionallydisplayed adjacent to the displayed text of the information item subsetand/or at an upper edge of a virtual region (920). In other embodiments,the method 900 may include fewer operations or additional operations. Inaddition, two or more operations may be combined and/or an order of theoperations may be changed.

FIG. 10 is a flow diagram illustrating an embodiment 1000 of a method ofscrolling through a list. Movement of a point of contact by a user of atouch-sensitive display is determined (910). A list of information itemson the touch-sensitive display is scrolled in response to the movement(912). The list of information items may include a sequence ofinformation item subsets corresponding to a sequence of index symbols.The index symbol corresponding to a respective information item subsetmay be optionally displayed translucently over the respectiveinformation item subset (914). The display of a respective index symbolmay be skipped when the list of information items contains no items fora respective index symbol (1010). The displayed index symbol may beoptionally moved with the information corresponding to the index symbolwhile the list is scrolled (1012). The index symbol corresponding to arespective information item subset may be optionally displayed adjacentto the displayed text of the information item subset and/or at an upperedge of a virtual region (920). In other embodiments, the method 1000may include fewer operations or additional operations. In addition, twoor more operations may be combined and/or an order of the operations maybe changed.

FIG. 11A is a schematic diagram illustrating an embodiment of a userinterface of a portable electronic device 600 having a touch-sensitivedisplay 608. The display 608 may include a window 1110 containing aplurality of objects corresponding to a list of information items, suchas information objects 1118 and 1120. The information objects 1118 and1120 may be part of an alphabetically ordered list (e.g., arrangedaccording to the first and/or the last name). The information objects1118 and 1120 may be grouped into information item subsets 1116, forexample, each information item subset 1116 may be based on one or moreletters of the alphabet.

The display 608 may also include an index 1112 in a separate window. Theindex 1112 may include a sequence of index items or index items/symbols1114, such as letters of the alphabet. The index 1112 may be used toscroll through the information item subsets 1116. Motion of a point ofcontact with the display 608 over the index 1112 results in scrollingthrough the information item subsets 1116. In some embodiments, theinformation items are scrolled at a speed 1122 that is based both on thespeed, velocity and/or acceleration of movement of the point of contactand the number of items in the information item subsets corresponding tothe index items over which the point of contact moves.

In some embodiments, if the user moves the point of contact to arespective index item/symbol in the index 1112, the list of informationitems is quickly and smoothly scrolled to the corresponding informationitem subset. In some other embodiments, if the user makes a point overcontact over a respective index item/symbol, items from thecorresponding information item subset are displayed, i.e., there may bea jump to that subset of the information items.

If the user makes a point of contact, i.e., touches the display 608,over one of the information items, such as information 1118-1,corresponding contact information may be displayed in a the window 1110.The user may also change to or from viewing such contact informationusing the forward and back navigation keys 1132.

In some embodiments, index symbols may be displayed in an index 1112,and also adjacent to corresponding subsets of information items. Severalimplementations are illustrated in FIGS. 11B-11D. In FIG. 11B indexitems/symbols 1114-1 and 1114-2 are displayed adjacent to correspondinginformation items subsets 1116-1 and 1116-2. As the list of informationitems is scrolled, the index items/symbols 1114-1 and 1114-2 may move upand/or down in conjunction with the information 1118 and 1120. The indexitems/symbols 1114-1 and 1114-2 may be translucent, use a different fontsize than the displayed text for the information 1118 and 1120, and/oruse a different font color than the displayed text for the information1118 and 1120.

In some embodiments, an index item/symbol is displayed approximatelyadjacent to information and at a mid-point of the window 1110. Asillustrated in FIG. 11C, index item/symbol 1114-3 is displayed adjacentto information 1124 and at a mid-point of the window 1110. The indexitem/symbol 1114-3 may move up and down about the mid-point duringscrolling of the list of information items. In other embodiments, theindex item/symbol 1114-3 may be displayed at or near an upper edge ofthe window 1110, as illustrated in FIG. 11D. In other embodiments, theindex item/symbol 1114 may be displayed at or near an upper edge of thewindow 1110 in a banner.

The index item/symbol 1114-3 may remain adjacent to a first displayeditem of a respective information item subset. When scrolling up throughthe list of information items (e.g., in response to an upward swipe onthe touch sensitive display by the user), the index item/symbol 1114-3may move from a lower edge of the window to the upper edge of the window1110. As the scrolling continues, the index item/symbol 1114-3 mayremain there until the end of the respective information item subset isreached, at which time the index item/symbol 1114-3 may be replaced witha subsequent index item/symbol.

When scrolling down through the list of information items (e.g., inresponse to an downward swipe on the touch sensitive display by theuser), the index item/symbol 1114-3 may remain at the upper edge of thewindow 1110 until the beginning of the respective information itemsubset is reached, at which time the index item/symbol 1114-3 may scrollfrom the upper edge of the window 1110 to the lower edge of the window1110. Simultaneously, a preceding index item or symbol may be displayedat the upper edge of the window 1110.

In some embodiments, one or more of the index item/symbols 1114 may notbe displayed, i.e., may be skipped, if the corresponding one or more ofthe information item subsets 1116 are empty, i.e., do not contain anyinformation entries. This is illustrated in FIG. 11E, in which an indexitem/symbol for the letter ‘I’ has been skipped. Index item/symbols1114-4 and 1114-5 are displayed since there is corresponding information1126 and 1128.

Attention is now directed to embodiments of devices. FIG. 12 is a blockdiagram illustrating an embodiment of a device 1200, such as a portableelectronic device having a touch-sensitive display 1234. The device 1200may include a memory controller 1212, one or more data processors, imageprocessors and/or central processing units 1214 and a peripheralsinterface 1216. The memory controller 1212, the one or more processors1214 and/or the peripherals interface 1216 may be separate components ormay be integrated, such as in one or more integrated circuits. Thevarious components in the device 1200 may be coupled by one or morecommunication buses or signal lines.

The peripherals interface 1216 may be coupled to an optional sensor1254, such as CMOS or CCD image sensor, RF circuitry 1218, audiocircuitry 1222 and/or an input/output (I/O) subsystem 1228. The audiocircuitry 1222 may be coupled to a speaker 1224 and a micro-phone 1226.The device 1200 may support voice recognition and/or voice replication.The RF circuitry 1218 may be coupled to one or more antennas 1220 andmay allow communication with one or more additional devices, computersand/or servers using a wireless network. The device 1200 may support avariety of communications protocols, including code division multipleaccess (CDMA), global system for mobile communications (GSM), EnhancedData GSM Environment (EDGE), Wi-Fi (such as IEEE 802.11a, IEEE 802.11b,IEEE 802.11g and/or IEEE 802.11n), Bluetooth, Wi-MAX, a protocol foremail, instant messaging, and/or a simple message system (SMS), or anyother suitable communication protocol, including communication protocolsnot yet developed as of the filing date of this document. In anexemplary embodiment, the device 1200 may be, at least in part, acellular telephone.

The I/O subsystem 1228 may include a touch screen controller 1230 and/orother input controller(s) 1232. The touch-screen controller 1230 may becoupled to a touch-sensitive screen 1234. The touch screen 1234 andtouch screen controller 1230 may detect contact and any movement orbreak thereof using any of a plurality of touch sensitivitytechnologies, including but not limited to capacitive, resistive,infrared, and surface acoustic wave technologies, as well as otherproximity sensor arrays or other elements for determining one or morepoints of contact with the touch screen 1234. The touch-sensitive screen1234 may have a resolution in excess of 100 dpi. In an exemplaryembodiment, the touch screen 1234 has a resolution of approximately 168dpi. The other input controller(s) 1232 may be coupled to otherinput/control devices 1236, such as one or more buttons, a keyboard,infrared port, USB port, and/or a pointer device such as a mouse. Theone or more buttons (not shown) may include an up/down button for volumecontrol of the speaker 1224 and/or the micro-phone 1226. The one or morebuttons (not shown) may include a push button. A quick press of the pushbutton (not shown) may disengage a lock of the touch screen 1234. Alonger press of the push button (not shown) may turn power to the device1200 on or off. The user may be able to customize a functionality of oneor more of the buttons. The touch screen 1234 may be used to implementvirtual or soft buttons and/or a keyboard.

In some embodiments, the device 1200 may include circuitry forsupporting a location determining capability, such as that provided bythe global positioning system (GPS). In some embodiments, the device1200 may be used to play back recorded music, such as one or more files,such as MP3 files or AAC files. In some embodiments, the device 1200 mayinclude the functionality of an MP3 player, such as an iPod (trademarkof Apple Computer, Inc.). The device 1200 may, therefore, include a36-pin connector that is compatible with the iPod.

The memory controller 1212 may be coupled to memory 1210. Memory 1210may include high-speed random access memory and/or non-volatile memory,such as one or more magnetic disk storage devices, one or more opticalstorage devices, and/or flash memory. Memory 1210 may store an operatingsystem 1238, such as Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or anembedded operating system such as VxWorks. The operating system 1238 mayinclude procedures (or sets of instructions) for handling basic systemservices and for performing hardware dependent tasks. Memory 1210 mayalso store communication procedures (or sets of instructions) in acommunication module 1240. The communication procedures may be used forcommunicating with one or more additional devices, one or more computersand/or one or more servers. The memory 1210 may include a display module(or a set of instructions) 1242, a list of items/index 1244, a physicaldevice/equation of motion module (or a set of instructions) 1246 (forgoverning the scrolling of a list on the display 1234), contact/motionmodule (or a set of instructions) 1248 to determine the point of contactand/or its movement, a graphics module (or a set of instructions) 1250,and/or a GPS module 1252. The graphics module 1250 may support widgets,i.e., modules or applications with embedded graphics. The widgets may beimplemented using JavaScript, HTML, or other suitable languages.

Each of the above identified modules and applications corresponds to aset of instructions for performing one or more functions describedabove. These modules (i.e., sets of instructions) need not beimplemented as separate software programs, procedures or modules. Thevarious modules and sub-modules may be rearranged and/or combined.Memory 1210 may include additional modules and/or sub-modules, or fewermodules and/or sub-modules. Memory 1210, therefore, may include a subsetor a superset of the above identified modules and/or sub-modules.Various functions of the device 1200 may be implemented in hardwareand/or in software, including in one or more signal processing and/orapplication specific integrated circuits.

Attention is now directed towards data structures for implementing thelist of items or information items. FIG. 13 is a block diagramillustrating an embodiment of a data structure 1300 for a list of items.The data structure 1300 includes a plurality of item entries 1310. Insome embodiments, each item entry 1310 includes an item name oridentifier 1312, one or more addresses 1314, one or more telephonenumbers 1316, one or more optional photographs 1318, and/or one or morefields with miscellaneous information 1320 about the item.

The foregoing descriptions of specific embodiments of the presentinvention are presented for purposes of illustration and description.They are not intended to be exhaustive or to limit the invention to theprecise forms disclosed. Rather, it should be appreciated that manymodifications and variations are possible in view of the aboveteachings. The embodiments were chosen and described in order to bestexplain the principles of the invention and its practical applications,to thereby enable others skilled in the art to best utilize theinvention and various embodiments with various modifications as aresuited to the particular use contemplated.

1. A computer-implemented method, comprising: determining a movement ofa point of contact by a user of a touch-sensitive display; scrollingthrough a list of items on the touch-sensitive display in response tothe movement; and accelerating the scrolling in response to anaccelerated movement of the point of contact.
 2. The method of claim 1,wherein the scrolling and accelerating are in accordance with asimulation of a physical device having friction.
 3. The method of claim1, wherein the accelerated movement of the point of contact comprises afirst sweeping motion of the point of contact along a predefined axis ofthe touch-sensitive display; the method further comprising: furtheraccelerating the scrolling in response to a second sweeping motion ofthe point of contact along the predefined axis of the touch-sensitivedisplay.
 4. The method of claim 1, wherein the accelerated movement ofthe point of contact comprises a first user gesture oriented along apredefined axis of the touch-sensitive display; the method furthercomprising: further accelerating the scrolling in response to a seconduser gesture oriented along the predefined axis of the touch-sensitivedisplay.
 5. The method of claim 1, further comprising reversing adirection of scrolling in response to the scrolling intersecting avirtual boundary corresponding to a terminus of the list.
 6. The methodof claim 5, wherein the reversing corresponds to a damped motion.
 7. Themethod of claim 1, wherein the accelerated movement of the point ofcontact includes an accelerated movement of the point of contactfollowed by a breaking of the point of contact.
 8. The method of claim1, further comprising stopping the scrolling in accordance with the userbreaking the point of contact and then establishing a substantiallystationary point of contact with the touch-sensitive display for atleast a pre-determined period of time.
 9. The method of claim 1, furthercomprising displaying respective index symbols adjacent correspondingsubsets of the list of items while scrolling the list of items.
 10. Themethod of claim 1, further comprising: displaying a set of index symbolsin a first region of the touch-sensitive display while displaying thescrolling list of items in a second region of the touch-sensitivedisplay; and upon detecting that the point of contact is in the firstregion of the touch-sensitive display and corresponds to a respectiveindex symbol of the set of index symbols, scrolling the list of items toa corresponding subset of the list of items.
 11. The method of claim 1,further comprising: determining if the movement of the point of contactcorresponds to a displacement greater than a pre-determined magnitude,wherein the scrolling occurs when the movement corresponds to thedisplacement greater than the pre-determined magnitude.
 12. The methodof claim 11, further comprising: including an offset in the point ofcontact when scrolling through the list of items, wherein the offsetcorresponds to the pre-determined magnitude of the displacement, andwherein the offset allows the scrolling to commence smoothly.
 13. Acomputer-implemented method, comprising: determining a movement of apoint of contact by a user of a touch-sensitive display; scrollingthrough a list of items on the touch-sensitive display in response tothe movement; and reversing a direction of scrolling in response to thescrolling intersecting a virtual boundary corresponding to a terminus ofthe list, wherein the reversing corresponds to a damped motion.
 14. Aportable electronic device, comprising: a touch-sensitive display; oneor more processors; a memory; and a program, wherein the program isstored in the memory and configured to be executed by the one or moreprocessors, the program including: instructions for determining amovement of a point of contact by a user of a touch-sensitive display;instructions for scrolling through a list of items on thetouch-sensitive display in response to the movement; and instructionsfor accelerating the scrolling in response to an accelerated movement ofthe point of contact.
 15. A portable electronic device, comprising:touch-sensitive display means; processor means; memory means; and aprogram mechanism, wherein the program mechanism is stored in the memorymeans and configured to be executed by the processor means, the programmechanism including: instructions for determining a movement of a pointof contact by a user of a touch-sensitive means; instructions forscrolling through a list of items on the touch-sensitive means inresponse to the movement; and instructions for accelerating thescrolling in response to an accelerated movement of the point ofcontact.
 16. A portable electronic device, comprising: a touch-sensitivedisplay; one or more processors; a memory; and a program, wherein theprogram is stored in the memory and configured to be executed by the oneor more processors, the program including: instructions for determininga movement of a point of contact by a user of a touch-sensitive display;instructions for scrolling through a list of items on thetouch-sensitive display in response to the movement; and instructionsfor reversing a direction of scrolling in response to the scrollingintersecting a virtual boundary corresponding to a terminus of the list,wherein the reversing corresponds to a damped motion.
 17. A portableelectronic device, comprising: touch-sensitive display means; processormeans; memory means; and a program mechanism, wherein the programmechanism is stored in the memory means and configured to be executed bythe processor means, the program mechanism including: instructions fordetermining a movement of a point of contact by a user of atouch-sensitive means; instructions for scrolling through a list ofitems on the touch-sensitive means in response to the movement; andinstructions for reversing a direction of scrolling in response to thescrolling intersecting a virtual boundary corresponding to a terminus ofthe list, wherein the reversing corresponds to a damped motion.
 18. Agraphical user interface, comprising: a list of items on a touchsensitive display that scrolls in response to a predetermined movementof a point of contact by a user of the display, wherein the scrollaccelerates in response to an accelerated movement of the point ofcontact.